package com.codemart.lanze.modules.sys.model;

import java.io.Serializable;

import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.codemart.lanze.common.base.entity.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @description: 菜单权限
 * @author: lanze
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "tb_permission", resultMap = "BaseResultMap")
public class Permission extends BaseEntity<Permission> {

	@TableField(exist = false)
	private static final long serialVersionUID = 1L;

	/**
	 * 资源名称
	 */
	private String name;
	/**
	 * 资源类型：0,1,2(目录,菜单,按钮)
	 */
	private String type;
	/**
	 * 访问url地址
	 */
	private String url;
	/**
	 * 权限代码,多个用逗号分隔 menu例子：role:*，button例子：role:create,role:update,role:delete,role:view
	 */
	private String perms;
	/**
	 * 父节点id,一级节点为0
	 */
	private Long parentId;
	/**
	 * 父节点名称
	 */
	private String parentName;
	/**
	 * 父节点id列表串，用/分割
	 */
	private String parentIds;
	/**
	 * 排序号
	 */
	private Long sort;
	/**
	 * 是否禁用 true禁用 false 启用
	 */
	private Boolean isLock;

	/** 创建时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "创建时间")
	private java.util.Date createTime;

	/** 创建者 */
	@ApiModelProperty(value = "创建者")
	private java.lang.String createBy;

	/** 更新时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "更新时间")
	private java.util.Date updateTime;

	/** 更新者 */
	@ApiModelProperty(value = "更新者")
	private java.lang.String updateBy;

	/** delFlag */
	@ApiModelProperty(value = "delFlag")
	private java.lang.String delFlag;

	/**
	 * 菜单图标
	 */
	private String icon;

	@Override
	protected Serializable pkVal() {
		return getId();
	}
}
